1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package sun.nio.cs.ext;
27
28 import java.nio.charset.Charset;
29 import java.nio.charset.CharsetDecoder;
30 import java.nio.charset.CharsetEncoder;
31 import sun.nio.cs.HistoricallyNamedCharset;
32
33 public class Big5_HKSCS_2001 extends Charset
34 {
35 public Big5_HKSCS_2001() {
36 super("x-Big5-HKSCS-2001", ExtendedCharsets.aliasesFor("x-Big5-HKSCS-2001"));
37 }
38
39 public boolean contains(Charset cs) {
40 return ((cs.name().equals("US-ASCII"))
41 || (cs instanceof Big5)
42 || (cs instanceof Big5_HKSCS_2001));
43 }
44
45 public CharsetDecoder newDecoder() {
46 return new Decoder(this);
47 }
48
49 public CharsetEncoder newEncoder() {
50 return new Encoder(this);
51 }
52
53 private static class Decoder extends HKSCS.Decoder {
54 private static DoubleByte.Decoder big5 =
55 (DoubleByte.Decoder)new Big5().newDecoder();
56
57 private static char[][] b2cBmp = new char[0x100][];
58 private static char[][] b2cSupp = new char[0x100][];
59 static {
60 initb2c(b2cBmp, HKSCS2001Mapping.b2cBmpStr);
61 initb2c(b2cSupp, HKSCS2001Mapping.b2cSuppStr);
62 }
63
64 private Decoder(Charset cs) {
65 super(cs, big5, b2cBmp, b2cSupp);
66 }
67 }
68
69 private static class Encoder extends HKSCS.Encoder {
70 private static DoubleByte.Encoder big5 =
71 (DoubleByte.Encoder)new Big5().newEncoder();
72
73 static char[][] c2bBmp = new char[0x100][];
74 static char[][] c2bSupp = new char[0x100][];
75 static {
76 initc2b(c2bBmp, HKSCS2001Mapping.b2cBmpStr,
77 HKSCS2001Mapping.pua);
78 initc2b(c2bSupp, HKSCS2001Mapping.b2cSuppStr, null);
79 }
80
81 private Encoder(Charset cs) {
82 super(cs, big5, c2bBmp, c2bSupp);
83 }
84 }
85 }